package com.study.d022transform;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.HBox;
import javafx.scene.transform.Translate;
import javafx.stage.Stage;

/** Transform接口之子类  Translate的使用
 * Translate位移类，移动节点
 *
*@description
*@author xtayhame
*date 2020年3月17日
*version
*since v1.0
*/
public class TranslateMain extends Application{
	public static void main(String[] args) {
		launch(args);
	}
	@Override
	public void start(Stage stage) throws Exception {
		AnchorPane anchorPane = new AnchorPane();


		AnchorPane  pane = new AnchorPane();
		pane.setPrefWidth(600);
		pane.setPrefHeight(500);
		pane.setStyle("-fx-background-color:#FFF987");

		AnchorPane.setTopAnchor(pane, 100.0);
		AnchorPane.setLeftAnchor(pane, 100.0);

		anchorPane.getChildren().add(pane);
		stage.setScene(new Scene(anchorPane));
		stage.setWidth(800);
		stage.setHeight(700);
		stage.show();

		//
		Button b1 = new Button("第一个按钮");
		b1.setPrefSize(100, 100);
		pane.getChildren().add(b1);

		AnchorPane.setTopAnchor(b1,0.0);
		AnchorPane.setLeftAnchor(b1, 0.0);

		Button b2 = new Button("第二个按钮");
		b2.setPrefSize(100, 100);
		pane.getChildren().add(b2);

		//使用位移
		Translate tsl = new Translate(100, 100);
		//b2分别被向上和向右移动100
		b2.getTransforms().add(tsl);

		//再次移动
		b2.getTransforms().add(tsl);

		//此时获取b2的位置
		//用getLayoutX() 和 getLayoutY() 无法获取位移后坐标
		System.out.println("使用 getLayoutXXX()方法获取坐标：  X:"+b2.getLayoutX() + "  Y:" + b2.getLayoutY());  // 0   0


		//使用getLocalToParentTransform() 可以获取组件通过位移后的真实坐标位置
		System.out.println("【使用getLocalToParentTransform()方法获取坐标--相对父组件】：   X:"+b2.getLocalToParentTransform().getTx()  + "   Y" + b2.getLocalToParentTransform().getTy());


		System.out.println("【使用getLocalToParentTransform()方法获取坐标--相对场景】：   X:"+b2.getLocalToSceneTransform().getTx()  + "   Y" + b2.getLocalToSceneTransform().getTy());

		//使b2再向右移动100
		b2.setTranslateX(100);

		//使b2再向左移动200
		b2.setTranslateX(-200);
	}
}
